<div id="config"></div>
<div class="header">
<p>
Previous: [[cvs: Expansions in administrative files#Expansions in administrative files|Variables]], Up: [[cvs: Reference manual for Administrative files#Reference manual for Administrative files|Administrative files]] &nbsp; |[[cvs: Index#SEC_Contents|Contents]]||[[cvs: Index#Index|Index]]|</p>
</div>

----

<div id="The-CVSROOT_002fconfig-configuration-file"></div>
=== The CVSROOT/config configuration file ===

<div id="index-config_002c-in-CVSROOT"></div>
<div id="index-CVSROOT_002fconfig"></div>

The administrative file &lsquo;<tt>config</tt>&rsquo; contains various
miscellaneous settings which affect the behavior of
<small>CVS</small>.  The syntax is slightly different from the
other administrative files.  Variables are not
expanded.  Lines which start with &lsquo;<code>#</code>&rsquo; are
considered comments.
Other lines consist of a keyword, &lsquo;<code>=</code>&rsquo;, and a
value.  Note that this syntax is very strict.
Extraneous spaces or tabs are not permitted.

Currently defined keywords are:

<div id="index-RCSBIN_002c-in-CVSROOT_002fconfig"></div>
;<code>RCSBIN=<var>bindir</var></code>
: For <small>CVS</small> 1.9.12 through 1.9.18, this setting told <small>CVS</small> to look for <small>RCS</small> programs in the <var>bindir</var> directory.  Current versions of <small>CVS</small> do not run <small>RCS</small> programs; for compatibility this setting is accepted, but it does nothing.

<div id="index-SystemAuth_002c-in-CVSROOT_002fconfig"></div>
;<code>SystemAuth=<var>value</var></code>
: If <var>value</var> is &lsquo;<code>yes</code>&rsquo;, then pserver should check for users in the system&rsquo;s user database if not found in &lsquo;<tt>CVSROOT/passwd</tt>&rsquo;.  If it is &lsquo;<code>no</code>&rsquo;, then all pserver users must exist in &lsquo;<tt>CVSROOT/passwd</tt>&rsquo;. The default is &lsquo;<code>yes</code>&rsquo;.  For more on pserver, see [[cvs: Direct connection with password authentication#Direct connection with password authentication|Password authenticated]].


<div id="index-TopLevelAdmin_002c-in-CVSROOT_002fconfig"></div>
;<code>TopLevelAdmin=<var>value</var></code>
: Modify the &lsquo;<code>checkout</code>&rsquo; command to create a &lsquo;<code>CVS</code>&rsquo; directory at the top level of the new working directory, in addition to &lsquo;<code>CVS</code>&rsquo; directories created within checked-out directories. The default value is &lsquo;<code>no</code>&rsquo;.

: This option is useful if you find yourself performing many commands at the top level of your working directory, rather than in one of the checked out subdirectories.  The &lsquo;<tt>CVS</tt>&rsquo; directory created there will mean you don&rsquo;t have to specify <code>CVSROOT</code> for each command.  It also provides a place for the &lsquo;<tt>CVS/Template</tt>&rsquo; file (see [[cvs: How data is stored in the working directory#How data is stored in the working directory|Working directory storage]]).

<div id="index-LockDir_002c-in-CVSROOT_002fconfig"></div>
;<code>LockDir=<var>directory</var></code>
: Put <small>CVS</small> lock files in <var>directory</var> rather than directly in the repository.  This is useful if you want to let users read from the repository while giving them write access only to <var>directory</var>, not to the repository. It can also be used to put the locks on a very fast in-memory file system to speed up locking and unlocking the repository. You need to create <var>directory</var>, but <small>CVS</small> will create subdirectories of <var>directory</var> as it needs them.  For information on <small>CVS</small> locks, see [[cvs: Several developers simultaneously attempting to run CVS#Several developers simultaneously attempting to run CVS|Concurrency]].

: Before enabling the LockDir option, make sure that you have tracked down and removed any copies of <small>CVS</small> 1.9 or older.  Such versions neither support LockDir, nor will give an error indicating that they don&rsquo;t support it. The result, if this is allowed to happen, is that some <small>CVS</small> users will put the locks one place, and others will put them another place, and therefore the repository could become corrupted.  <small>CVS</small> 1.10 does not support LockDir but it will print a warning if run on a repository with LockDir enabled.

<div id="index-LogHistory_002c-in-CVSROOT_002fconfig"></div>
;<code>LogHistory=<var>value</var></code>
: Control what is logged to the &lsquo;<tt>CVSROOT/history</tt>&rsquo; file (see [[cvs: history--Show status of files and users#history&mdash;Show status of files and users|history]]). Default of &lsquo;<code>TOEFWUCGMAR</code>&rsquo; (or simply &lsquo;<code>all</code>&rsquo;) will log all transactions.  Any subset of the default is legal.  (For example, to only log transactions that modify the &lsquo;<tt>*,v</tt>&rsquo; files, use &lsquo;<code>LogHistory=TMAR</code>&rsquo;.)

<div id="index-RereadLogAfterVerify_002c-in-CVSROOT_002fconfig"></div>
<div id="index-verifymsg_002c-changing-the-log-message-1"></div>
;<code>RereadLogAfterVerify=<var>value</var></code>
: Modify the &lsquo;<code>commit</code>&rsquo; command such that CVS will reread the log message after running the program specified by &lsquo;<tt>verifymsg</tt>&rsquo;. <var>value</var> may be one of &lsquo;<code>yes</code>&rsquo; or &lsquo;<code>always</code>&rsquo;, indicating that the log message should always be reread; &lsquo;<code>no</code>&rsquo; or &lsquo;<code>never</code>&rsquo;, indicating that it should never be reread; or <var>value</var> may be &lsquo;<code>stat</code>&rsquo;, indicating that the file should be checked with the filesystem &lsquo;<code>stat()</code>&rsquo; function to see if it has changed (see warning below) before rereading.  The default value is &lsquo;<code>always</code>&rsquo;.

: '''Note: the &lsquo;stat&rsquo; mode can cause CVS to pause for up to one extra second per directory committed.  This can be less IO and CPU intensive but is not recommended for use with large repositories'''

: See [[cvs: Verifying log messages#Verifying log messages|verifymsg]], for more information on how verifymsg may be used.

<div id="index-UserAdminOptions_002c-in-CVSROOT_002fconfig-1"></div>
;<code>UserAdminOptions=<var>value</var></code>
: Control what options will be allowed with the <code>cvs admin</code> command (see [[cvs: admin--Administration#admin&mdash;Administration|admin]]) for users not in the <code>cvsadmin</code> group. The <var>value</var> string is a list of single character options which should be allowed.  If a user who is not a member of the <code>cvsadmin</code> group tries to execute any <code>cvs admin</code> option which is not listed they will will receive an error message reporting that the option is restricted.

: If no <code>cvsadmin</code> group exists on the server, <small>CVS</small> will ignore the <code>UserAdminOptions</code> keyword (see [[cvs: admin--Administration#admin&mdash;Administration|admin]]).

: When not specified, <code>UserAdminOptions</code> defaults to &lsquo;<code>k</code>&rsquo;.  In other words, it defaults to allowing users outside of the <code>cvsadmin</code> group to use the <code>cvs admin</code> command only to change the default keyword expansion mode for files.

: As an example, to restrict users not in the <code>cvsadmin</code> group to using <code>cvs admin</code> to change the default keyword substitution mode, lock revisions, unlock revisions, and replace the log message, use &lsquo;<code>UserAdminOptions=klum</code>&rsquo;.


----

<div class="header">
<p>
Previous: [[cvs: Expansions in administrative files#Expansions in administrative files|Variables]], Up: [[cvs: Reference manual for Administrative files#Reference manual for Administrative files|Administrative files]] &nbsp; |[[cvs: Index#SEC_Contents|Contents]]||[[cvs: Index#Index|Index]]|</p>
</div>
This document was generated on <i>a sunny day</i> using [http://www.nongnu.org/texi2html/ <i>texi2html</i>].
